perm filename T[E,ALS] blob
sn#155285 filedate 1975-04-18 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00238 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00020 00002 E -- DISPLAY EDITOR FOR STANFORD
C00030 00003 RIGHT HALF FLAGS
C00033 00004 CHARACTER TABLE FLAGS
C00036 00005 DD←←20000 RUNNING ON DATA DISK
C00038 00006 GETCHR, FSFIX, TSTSHF, CW, LEG, UUOS, XOPDEF, PURE, IMPURE,
C00041 00007 BEG, BEGSYS, BEGACT, BEGRPT, BEGDBG
C00044 00008 BEGRPG
C00046 00009 BEG0, BEG1, BEG1A, BEG2, BEGBKP
C00050 00010 BEG3,BEG4
C00053 00011 MAIN, FNF, FNF2
C00055 00012 CMDIN, CMDLUP, CMDEX, CMDX, CMDX2
C00058 00013 CMDED, CMDRD, CMDRD2, MINUS, PLUS, NUMS, INFIN, ALTSET
C00060 00014 CMDERR, ERR, POPJ1, EXTNUL, CPOPJ, CBTAB, ICHTAB, ILLRDO, ILLDIR, ILLMES, ILLMS2, ERRX, ILLBK
C00062 00015 INIT, INIT0, INIT1, INI1, IOBARF
C00066 00016 CMDSP
C00069 00017 XCMDS, XDISP, MCMDS, MDISP
C00071 00018 EXTEND, EXTEN1, EXTL0, EXTL, EXTL1, EXTL2, EXTL3
C00073 00019 EXTLK0, EXTLK, EXTAMB, EXTNUL, EXTNF, EXTAM2, EXTBUF, EXTBFE
C00075 00020 READON, ROSET, READWR, NORDWR, CANCEL, SNKOFF, SNKON, DPYALW, DPYSKI, NORDOW
C00077 00021 DDTGO, R, DRAW, DRAWX, PPSET, LINCNT
C00080 00022 GETOUT, GETOU1, FINISH, FINI1, FINI2, GORPG, QUIT, CLOSIT, GODRD
C00082 00023 NEWPAG, NEWPG, NEWPG0, NEWPG1, REREAD, PGINIT, NODEL, PGERR, FINSRT
C00086 00024 UNWIND, WIND, WIND1, LT, GT, LTE, GTE, TOP, BOT, JMP, UPARR, DWNARR
C00088 00025 XMARK--The `M' commands.
C00099 00026 DELLIN, DELPOS
C00101 00027 DELLP, DELL2
C00103 00028 DELPM, DELPM1, DELPM2, DELPM3
C00105 00029 DELPAG, DELPG1, ADJPG, ADJPGL
C00107 00030 RCOMP, RCOMP1, RCOMP2, RCOMPX
C00108 00031 DELETE, DELET1, ADDPAG
C00110 00032 APPEND, APPLUZ
C00112 00033 APPEN2, PMTXT, PMPAG
C00114 00034 INSERT
C00115 00035 INSER1, INSER2, INSER3, INSER4, INSER5
C00116 00036 INSER8, DIRADD
C00118 00037 INSER6, INSER7, MARK
C00119 00038 CONTQ
C00121 00039 ATTACH, ATTCH1, ARGCHK, ARGCHN
C00123 00040 ATTDO, ATTDO0, ATTDO2, ATTDO1
C00125 00041 ATTREP, ATTEX
C00127 00042 ATTKIL, ATTKL, ATTSRC, GPAGL, GPAGL0, GPAGL1, GPAGL2, GPAGL3, ATTWRT
C00129 00043 ATTCOP, ATTCP1, ATTCP
C00130 00044 ATTCP0, ATTCPL, ATCMOR, ATTCP2, ATTCP3, GPAGL
C00132 00045 EDIT, EDIT1, LINED, LINL1, EDDSP, EDARG, EDARGX
C00134 00046 EDFULL, EDTAB, EDNUL, EDCR, AGAIN, EDRP1, EDRPT
C00136 00047 EDGL, EDGL1, EDGL2, EDGL2A
C00139 00048 EDGL3, EDGL4, REEDIT, EDTMOR, EDGDSP, EDTAB2, PTOUT, PTPNT
C00142 00049 EDCR2, EDACT, EDITIT, REPLIN, PUTBAK
C00145 00050 EDPUT, EDPLR
C00147 00051 EDPS, EDPL, EDPLUZ
C00148 00052 EDSNK, EDSNK2, EDSNK3, ESDSP, ESALT
C00149 00053 CRDSP, REGCR, REGCR1, REGCR2
C00150 00054 CONTCR, CNTCR2, METACR, REPRST, REPRS2
C00152 00055 LECR, DUBLCR, DUBCR2
C00154 00056 INSONA, INSONE, INSNUL, INSNLP
C00156 00057 LININS, LINSLP, LINS1, LINGLP, LIDSP, LINTAB
C00158 00058 LINCR1, LINCR, LICCR, LINALT, LINCOM
C00159 00059 LINSTO, LINST1
C00161 00060 SETWRT, SETWR2, SETWRX, BTAB, BUF, RBUF
C00162 00061 FRD, FRD0, FRD1, NOEXT, NOPRG, NOPPN, NOSWIT, SWITL
C00165 00062 SETDEV, GETNAM, GETNML, GETP, GETPL, DTYI1, DTYI, DTYI2
C00167 00063 DOSWIT, NTYI, NTYIL, NTYIM, EDFIL, EDFIL2, SRCFIL, DSTFIL
C00169 00064 RSCAN, RSCAN0, RSCAN1, RSCAN2, RSCAN3, RSCAN4, RSCN4B, RSCN4C, RSCN4A, RSCN0A
C00173 00065 RSCAN5, RSCAN6, RSCAN7, RSCAN8, SYSCCK, CRECHK
C00175 00066 RSTYI, TYI1, TYI2, TYI3, TYIX, TYI4
C00177 00067 TYI, TYIT, TYIU
C00178 00068 TMPRED, TMPRD1, TMPRD2, TMPRDX, RPGRD1, BKPRED
C00184 00069 TMPWRT, BKPWRT
C00187 00070 FILERR, FILTYP, FILSTR, PPNTYP, FILETB
C00189 00071 SIXTYO, SIXTYL, SIXTY2, SIXTYN, SIXTNL, SIXTNN, PNTYO, PNTYOL
C00190 00072 UUOH, UUODSP, UFCE, UTYPCH, UTYPC2, UTYPDE, UTYPOC
C00192 00073 UTYPR, UTYPR1, USORRY, UFATAL
C00193 00074 OPENI, OPNOI, IOPEN, SETI, SETRLD, OPNDEV, RELDEV, OPNLUZ
C00197 00075 RLD, RLD1, RLD2, RLDX, RLDLUZ, FIXEOF, ENTLUZ, ENTL2
C00200 00076 EXTCHK, EXTCH1, EXTCH2, EXTCH3, EXTCH4, EXTTAB
C00202 00077 OPENW, OPENO, SETO, FPAUSE, PAUSE, PAUS2
C00204 00078 CLOSO, WRBUF, WRBF1, WRBF2, ENTR, OBUF
C00205 00079 MORCOR, INTLUZ, INTDSP, PDLOV, PDLOV1, PDLOV2, PDLOV3, ISAV, TSINT, TSNINT
C00208 00080 FSINI, FSINI1, MORCOR
C00211 00081 FSGET, FSLUP0, FSLUP, FSGRAB, FSXIT
C00212 00082 FSNEWT, FSNEWP, FSNEW
C00213 00083 FSUSED, FSTSML, FSNEXT, FSHRET, FSLLUZ
C00215 00084 FSLSCN, FSLSCL, FSLFR, FSLSHF, FSLSLP, FSLMOV, FSLDON
C00217 00085 FSHSCN, FSHSCL, FSHFR, FSHSHF, FSHSLP, FSHSR, FSHMOV
C00219 00086 FSBLT, POPTJ, FSBLT1
C00220 00087 FSBLT2, FSBLT3, FSHBLT, FSHBL2
C00221 00088 PNTREL, SHFTB, STDSH1, STDSHF, RELOC, RELOCL
C00223 00089 FSGIVE, FSGIV1, FSGIV2
C00224 00090 CORCHK, CRUNCH, CMPACT
C00226 00091 ENDSET, ENDFIX
C00227 00092 FSCHK, FCLUP1, FCLUP2, FCFR, FCDON
C00229 00093 FUCHK, MOVIT, MOVTX
C00231 00094 PURINI, PLCHK, PL2CHK, PLCHKL, PLSCN0, PLSCN, PLSCN1, PLSCN2, PLSCN3
C00233 00095 PURCHK, PURCH1, PURCH2, PURCH3, PURC3A
C00236 00096 PURCH4, PURCH5, PURCH6, PURCH7, PURCLC, TYPHW, PURCK, PLCHK1, PLCHK2, PURFLG
C00238 00097 SAVIT
C00239 00098 CHECK, CHECK1, CHECK2
C00240 00099 CHKDIR, CHKDPL
C00242 00100
C00244 00101 CHKLST, CHKFS, CHKFSL, CHKFS2, CHKPNT, CHKPN2
C00245 00102 CHKPAG, CHKPGP
C00246 00103 CHKPG1, CHKPG2, CPDSP, CHKPGT, CHKPTL
C00248 00104 CHKPG3, CHKPG4, CHKPG5, CHKPG6
C00249 00105 CHKATT, CHKNAT
C00250 00106 CTAB 0-37
C00254 00107 CTAB 40-77
C00256 00108 CTAB 100-137
C00258 00109 CTAB 140-177
C00260 00110 GETDIR
C00261 00111 DIRCL2, DIRCL, DIRCL1, GETDR1
C00263 00112 DIRLIN, DIRLUP, DIRDON
C00266 00113 LOSDIR, BADDIR, NODIR, DIRNUM, GDDSP, LSKP1, DIRSHF, DIREND
C00269 00114 COPFIL, COPFL1, COPDO, COPYX, COPDAT, COPLUP
C00271 00115 COPCOR, COPCHK, YESCHK, COPCMD
C00272 00116 FORMAT, FMTOK, FMTDSP
C00273 00117 NEWDIR, NEWDLP, SKPDSP, NEWDFF, OPUT, OSET, TMPDIR
C00274 00118 MAKDIR, MAKDR0, MAKDR1, MAKDOL, MDOL1
C00276 00119 MDIL1, MDIL1A, MDIL2, MDIL2A, MDCSRC, MDCSR1, MD1DSP
C00278 00120 MDIL1B, MAKDLF, MAKDFF, MDFF2, MDFF3, MDCEOL, MD2DSP
C00280 00121 MD1CR, MD2CR, MD3CR, MD3CR1, MDIL3, MDCRCK, MDFIX
C00282 00122 CREATE, CREAT2, CTEXT
C00284 00123 RDPAGE, RDPGOK, RDSPAG, RDPAG0
C00286 00124 RDPAG2, RDPAG1, RDLINE, RDLLP, RDLTAB
C00288 00125 RDLCR, RDLLF, NUMSTR,NUMSIX,OCTSTR,OCTASC
C00291 00126 RDLFF, RDLDON, LINSET, RPDSP, RDLNUL
C00293 00127 RDPGLZ, SOSTST, SOSCHK, SOSCK2, PGMK, PGMK2
C00294 00128 DIRCHK, DIRNEW, DIRNW2, DIRNW1, TXTSHF
C00296 00129 FNDLIN, FNDPAG, FNDLN1, FNDLN2, FNDLN3
C00297 00130 REMPTR, FIXPTR, FNDPT1, FNDPT2, LPTRTB, DPTRTB
C00299 00131 DIRGET, DIRGL, DGEND, DRGSET
C00301 00132 NUM5, NUM5A, DIRHED, DIRTXT, DIREMK, DGDSP
C00303 00133 OUTDIR, OUTDOK, OUTDLP, ODDSP, ODDON, ODEXP
C00305 00134 INSDIR, DCLP1, DCLP2, DCNG, INSDL
C00307 00135 IDDSP0, IDDSP, IDTAB, INSD3, INSD4, SCOMS, SCOMS2
C00309 00136 IDNUL, IDDON, IDDONS
C00311 00137 DIRSET, DIRST1, DIRUP, DIRUP1, DIRUP2, DIRUP3
C00312 00138 DIRFIX, DIRFX1, DIRFX2, DIRFX3, DIRFX4, DIRFXN
C00314 00139 DISPLAY DATA STORAGE
C00316 00140 MORE DISPLAY STORAGE
C00317 00141 HEADERS & TRAILERS
C00318 00142 DPYINI, DPYCHK
C00321 00143 DPYI2, NODPY, WIPE, IWIPE
C00323 00144 SETSCR, NMVARR, MOVARR, SETARR
C00325 00145 ARRBOT, ARRTOP, SETWIN, WINCHK, WINCH2
C00327 00146 DISP, DISP0, DISP1, DISP2
C00329 00147 DISP3, DISP4, DISP5, DUMMY, EXCLR, EXSET,EXTST
C00331 00148 DISPAT, DISPAX
C00332 00149 DWNWIN, REWIN, DDISPX, DDSPX2, DDDONE, WIPIT, WIPL, WIPL2
C00334 00150 DDCOP, DDLUZ, LINREL, LINRLL, IDISP, IDISP2
C00335 00151 IIIARR, IIIAR2, IIIAR3
C00337 00152 LESET, LEADJ, LECLR
C00338 00153 DBLT, DBLT1, DBLT2, DBLT3, IDISPX, DISPX, PPBAJ1, POPBAJ, POPAJ
C00340 00154 PCOMPD, PCOMPI, PCOMPS, P2CMPD, P2CMPI
C00341 00155 DDISP, DDISP2
C00342 00156 DOARR, DOAR2, OFFARR, ONARR
C00343 00157 DDISPS, DDSPS2, DDSPS3, DDSPSX, DDSPS4
C00345 00158 DSPSAT, DSPSAX
C00346 00159 DBLTS, DBLTS2, DBLTSN, DBLTS3, DBLTS1, DBLTSA, DBLTA, DBLTA2
C00348 00160 TDISP, TDISP1, TDISP2, TDSP2A, TDISPX
C00350 00161 TDISPC, TDISP3, TDISP4, TDISP5, TYPE, TYPEL
C00351 00162 WRPAGE, WRPAG1, WRPAG2, WRBOOK
C00353 00163 WRPX0, WRPX, WRPX1, WRPX1A, WRPX1B, WRPX2
C00354 00164 WRPX3, WRPX4
C00355 00165 WRPOK, WRTIT, WRT0
C00356 00166 WRP1, WRLINE, WRLUP, WRLP2, WRRDO, WRRDO2, WRRDO3
C00358 00167 WRDSP, WRTAB, WRCHK, WRDONE, WRDON2
C00360 00168 WRPM, BTAB2
C00362 00169 FLSPAG, FLSPGL, FLSPG2, CLRWRT, CLRWR2
C00363 00170 TV, RSYS, RUN, RUN1
C00366 00171 RUNILL, RUNNON, RUNFNF, RUNDEV, RUNFIL
C00367 00172 SEARCH ROUTINES
C00369 00173 SREAD, SREAD1, SREAD2, SREAD3, SREAD4, SRSTOR, SRSTR2
C00381 00174 SRACT, SREAD5, SRALT, SRALT2, SRALUZ, SREDT
C00388 00175 FINDIT, FOUND, FNDMOV, FNDERR
C00392 00176 FIND
C00394 00177 DIRSRC, DFERR, SRCDF, SDFCR
C00396 00178 SSET, SSET2
C00397 00179 SCOMP, SCOMPX, SCOMPR
C00399 00180 SBARF, SBARF1, SARRGH, SFSGT, SFSGET, SFSPUT, SFSPTL
C00401 00181 SPARSE
C00402 00182 SPARS1, SPARS2, SPDSP, SSCAN, SSCANA, SSCANX
C00404 00183 SSCAN1, SSCN1A, SSCN1B, SSCQT, SSCBIN, SSCINF, SSCNOT, SSCUOP, SSCVB
C00406 00184 SSCLP, SSCDSP
C00407 00185 SGRAPH, SGRPH1, SGRPH2, SGRPHX, SGDO1, SGDO1X, SGDOX2, SGDSP, SGDO1B
C00409 00186 SGNOT
C00410 00187 SBACK, SBACK1, SBACK2, SBACK3, SBACK4
C00412 00188 SBBRCH, SBBR2
C00413 00189 SBCALC, SBCAL0, SBCAL1, SBCAL2, SBCAL3
C00414 00190 SBCAL4, SBCNON, SBCX, SBCOPL, SBCOP2, SBCEND, SBCEN2, SBCFIX, SBCFXL, SBCFXE, POPJ2
C00416 00191 SBCOK, SBCEN1, SBCLUZ, SBCLZ1, SBCNXT, SBCBP, SBCBPL
C00418 00192 SBCCB, SBCCB1, SBCCB2, SBCCB8, SBCCB3, SBCCB4, SBCCB5
C00420 00193 SBCCB6, SBCCB7, BITCNT, BITCN1
C00421 00194 NEWBIT, NEWBT0, NEWBT1, NEWBT2, NEWBT3, NEWBT4, NEWBT5
C00423 00195 NEWBTC, NEWBC1, NEWBC2, NEWBC3, NEWBNC, NEWBN1, NEWBN2, NEWBN3, NEWBCZ, NEWBNZ
C00425 00196 SCCOM, SCCNOT
C00426 00197 SCCBIT
C00427 00198 MAKBIT, MAKBT0, MAKBT1, MAKBTN, MAKBN2, MAKBTB, MAKBB3
C00429 00199 MAKBNB, MAKBBT, MAKBB2, MBDSP, MBIND, MBIND2
C00431 00200 SCGEN
C00432 00201 SCGEN1, SCGEN2, SCGEN3, SCGEN4, SCGEN5, SCGEN6
C00434 00202 SCGTST, SCGT2, SCGT3, SCGDSP, SCGCN, SCGCN2, SCGBTN, SCGBT
C00436 00203 SCGE, SCGE2, SCGEL, SCGBAK, SCGBK1, SCGBK2, SCGBK3, SCGFA, SCGNC, SCGNFA
C00438 00204 SCGHB, SCGHB0, SCGHB5, SCGHB1, SCGHB2, SCGHB3, SCGHB4, SCGHBX, SCGHX2
C00440 00205 SCGCB, SCGCB0, SCGCB1, SCGCB2, SCGCB3, SCGCB4, SCGCB5, SCGHCB
C00442 00206 SBTMAK, SBTMK1, SBTMK2, SBTMK3, SBTMK4, SCGENB, SCGHB, SSVINS, SCXCT, SBKNW, SBKNWA, SBKDSP
C00444 00207 SRCPAG, SRCPG1
C00446 00208 GBYTP, GBYTPL, GBTPX, GBPDSP, GBPTAB
C00447 00209 SRCPGF, SPFTAB, SPFCR, SPFLUZ
C00448 00210 SRCPGB, SPFTAB, SBKNL, SBKNUL
C00449 00211 SRCSET, SRCST1, SRCSTL, SRCST2
C00450 00212 SCALL, SRCHX, SRCHLX
C00451 00213 SCNBAK, SCNBKL
C00453 00214 SCONTF, SRCFNP, SRCFNB, SFNB2, SFRETR
C00455 00215 SRCFF, SFFNUL, SGTACS, SRTACS
C00456 00216 SRCFB, SFBNUL, SBKNB, SBKNB2, SIOERR, SBKNP
C00457 00217 JFILL, JUST, JUSTL1, JUSTL2, JDISP
C00466 00218 JUSTTB, JUSTSP, JUSTS2, JUSTSL, JUSTS3, JUSTSO, JSTSO2, JULMAR
C00469 00219 JUSMAR
C00474 00220 JUSTCR, JCRTB, JCR2, JFIX, JPTAB, JATAB
C00477 00221 NXTLIN, NXTLN2, JTAB, NXTBL
C00483 00222 JDUMP, JDMP2, JDLT, JDL1, JDISP2
C00487 00223 JDSP1, JDSP2, JDSP3, JDTAB, JFLUSH
C00489 00224 JDFIN
C00492 00225 JDFIN2, JSET, JSET2
C00494 00226 INDENT,ALINE,CENTER,JLEFT
C00497 00227 LEFMAR,SHIFTY
C00501 00228 MACRO FREE STORAGE - MFSCLR,GETMFS,FREMFS
C00503 00229 MACRO DEFINER INPUT WATCHERS - INCHWL,INCHSL,SNEAKW,INCHRS,etc.: MACTYI
C00505 00230 ZDATA,ZSIX,ZBLT,ZEDFIL,ZLIST,EXIST
C00516 00231 LAMBDA,EPSIL,NWFILE,HOME,QUERY,HOMEG,LAMBDG
C00524 00232 ********* BEG OF ESSAY DEFS *********
C00543 00233 SUBSTR
C00554 00234 SPOOLC
C00559 00235 BEGIN SPSUB
C00566 00236 TELBUF,CHKUP,CHECKU,CHTEXT,ASCASC,CHOUT3,CHOUT6
C00573 00237 TELLME,FBI
C00585 00238 PDL, PATCH, PAT, ZVARS, LEGTAB
C00587 ENDMK
C⊗;
;E -- DISPLAY EDITOR FOR STANFORD
;Written by Frederick H.G. Wright II
;with modifications by D. Poole, Art Samuel, and Stan Kugell.
;The Essay program was contracted by John Mccarthy and written by Stan Kugell
PRINTS /Type 0 to get ETV, 1 to get ESSAY, then <CTRL><META><LF>./
ESSFLG←←.INSER TTY:
IFE ESSFLG<TITLE ETV -- DISPLAY EDITOR FOR STANFORD↔SUBTTL FREDERICK H.G. WRIGHT II
PRINTS / You are assembling ETV, the Stanford Display Editor
/
PRINTS/ MAR.28,1975 E.29(P481) Apr.6 1975 E.31(P487) Apr.7 1975 E.32(P487)
APR 10 1975 E.33(P487) APR 14 E.34
E.32 contains code for TELLME but no automatic calling
E.32 Reloaded on April 8 with minor corrections.
E.33 With some automatic calling (checksum error and UFATAL calls) Apr. 10 1975.
E.34 ALINE bug fixed Apr.14 1975
/>
IFN ESSFLG<TITLE ESSAY
PRINTS / You are assembling Essay.
/>
DEFINE ESSAY <IFN ESSFLG>
DEFINE NOESS <IFE ESSFLG>
COMMENT ⊗ TO PUT UP A NEW E WITH AN UPPER SEGMENT, USE THE COMMANDS:
.LOA %SE%1<%2V%1B ;LOADS WITH SYMBOLS AND NNRAID IN THE UPPER SEGMENT
.S 137 ;RENAMES UPPER, WRITE PROTECTS AND SETS ITS PROTECTION CONSTANT
.SSAVE SYS E ;BE SURE TO SSave (to keep the UPPER SEGMENT around)
Early versions of E that were up for varying lengths of time:
Nov. 6 1974. E.7 Nov. 8 1974. E.8 Nov.17 1974. E.10
Nov.18 1974. E.10 Dec. 3 1974. E.12 Dec. 9 1974. E.15
Dec.10 1974. E.16(P424) Dec.14 1974. E.17(P431) DEC.17 1974. E.18(P431)
Dec.18 1974. E.19(P431) Jan.3 1975. E.20(P439 Jan.5,1975 E.21(P439)
Jan.10,1975. E.22(P442) Jan 15,1975 E.23(P442) Mar.12,1975. E.26(P474)
Mar.13,1975 E.27 Mar.17 1975 E.27(P477) Mar.19 1975 E.28(P477)
DATA STRUCTURE.
A page of text is represented in memory as a theaded list of
items each representing a single line of the text. Each item in this
representation contains four words of header information, the text of
the line in question and one trailer word.
The first header word contains a TXTCOD, which for ordinary text
is a 2 in the left half and the total number of words in the right half.
This word is used by the free storage management routines. It does not
seem to be used by the text manipulation sections of the code. The word
count is duplicated in the trailer word which is also used only by the
free storage routines.
The second header word is a pointer word. It contains a
backward pointer in the left half pointing to the location of the
pointer word of the previous item and in the right half a forward
pointer to the location of the pointer word of the next item. The
location of the pointer word for the first item is contained in the word
at PAGE and the backward pointer for the first item points back to
PAGE. The last item on the page points to the word BOTSTR and this word
points back to this last item and forward to itself. When in the ATTACH
mode, the location ATTBUF points to the pointer word of the first
attached line and back to the pointer word of the last attached line.
The third word contains flag bits in the left half identifying
the type of the line and two 9-bit bytes in the right half. Flag bits
which have been identified are:
400000 the line is a page mark.
200000 the line is ARRLIN (CURRENT to which the arrow points).
100000 the line is WINLIN (the first line on the window).
040000 the line is an Essay reference (for the ESSAY version).
The first byte in the right half contains the total count of the
characters as the line is stored on the disk, where a TAB symbol counts
1 and the terminating CR and LF are counted.
The second byte contains the count of the characters as they are
displayed where a TAB is counted as the number of spaces it produces and
the terminating CR and LF are not counted.
The fourth word is the serial number of the line as kept in the
core. This number is changed every time that a change is made to the line
so this number then bears no relationship to the position of the line on
the page.
The text occupies an integral number of words and is padded out
with nulls.
The trailer word contains the count of the total words in the
item, including header and trailer words. This duplicates the
information in the right half of the first header word.
TABs are handled in a pecular way. When a TAB occurs it is stored
as a TAB and this is followed by as many spaces as the TAB in fact
produces in the text and then by a terminating TAB.
end of comment ⊗
NOLIT
;Register Most common usage
F←0 ;Flag bits
A←1 ;Argument value
B←2 ;CONTROL and META bits as stripped from command character.
C←3 ;Character
D←4 ;Dispatch table entry
E←5 ;Table location.
G←6
H←7
I←10
DSP←11 ;Dispatch table location (CTAB most of the time).
Q←14
T←15
TT←16
P←17 ;Always reserved as PDL pointer.
DEFINE STOPJ
{PUSHJ P,STOPJC
}
;Used to replace JRST 4,. and other fatal halts to inform ALS of trouble
;STOPJ USED FOR JRST 4,. terminating with a JRST 4,. as usual
;STOPC used for JRST 4,. WHEN ATTEMPT IS MADE TO CONTINUE
IFNDEF PURESW<PURESW←←1> ;DEFAULT TO SHARABLE PURE UPPER SEGMENT
IFNDEF DEBSW<DEBSW←←1>
IFNDEF BOOKMD<BOOKMD←←1>
;BOOKMD NON-ZERO PERMITS /B MODE FOR READING BOOKS. 0 DISABLES /B MODE.
COPNUM←←3 ;LOG OF # K OF CORE FOR TEMP COPY BUFFER
SRSIZ←←40 ;SIZE OF SEARCH STRING BUFFER
LPDL←←69
DPYBSZ←←=660*2
DSKI←←1
DSKO←←2
DSKSP←←4 ;Used for spooling file
DSKCH←←5 ;Used to write into bug file BUGFIL.LST[ALS,ALS]
SWP←←3
IFN BOOKMD, {
RPGO←←4 ;CHANNEL USED TO WRITE OUT .BKP FILE IN BKPSW MODE
};END BOOKMD
...←←0
;Type of display (kept in cell called DPY)
$TTY ←← 0 ;Teletype kludge
$DD ←← 1 ;Datadisk video type display
$III ←← 2 ;III Vector type display
;RIGHT HALF FLAGS
REDNLY←←1 ;READ ONLY MODE
COPY←←2 ;NEED TO DO COPY (← OR →)
DIROK←←4 ;HAVE COMPLETE DIR
UPDTXT←←10 ;LINE 1 CHANGED - UPDATE DIR AT WRPAGE
WRITE←←20 ;SOMETHING CHANGED - NEED TO WRITE IT
EOF←←40 ;INPUT EOF DETECTED - DO ANOTHER LOOKUP (LOSING SYSTEM!)
EDDIR←←100 ;EDITING THE DIRECTORY PAGE
ARG←←200 ;ARG WAS TYPED TO COMMAND
DSPSCR←←400 ;REDISPLAY SCREEN
DSPALL←←1000 ;REDISPLAY WHOLE SCREEN
FILLUZ←←2000 ;EDITING NONSTANDARD FORMAT FILE
REL←←4000 ;RELATIVE ARG (+ OR -)
NEG←←10000 ;NEGATIVE ARG
EDITM←←20000 ;DISPATCH IS FROM LINE EDIT
EDBRK←←40000 ;(WITH EDITM) COMMAND TYPED IN MIDDLE OF LINE
XPAGE←←100000 ;WILL EXPAND FILE FOR PAGE
UPDIR←←200000 ;NON-TEXT CHANGE TO DIR
ATTMOD←←400000 ;IN ATTACH MODE
;LEFT HALF FLAGS
ENTRD←←1 ;EDIT FILE HAS BEEN ENTERED
CLRBF←←2 ;CLEAR OBUF AFTER OUTPUT
NOSHUF←←4 ;DON'T SHUFFLE FREE STORAGE
NOCHK←←10 ;DON'T TRY TO CORE DOWN
OFFEND←←20 ;ARROW ON LINE N+1
NULLIN←←40 ;CURRENT LINE IS EMPTY
ARRPG←←100 ;ARROW POG IS SELECTED
TF1←←200 ;TEMP FLAG
PMLIN←←400 ;CURRENT LINE IS PAGE MARK
OKF←←1000 ;SHOULD TYPE "OK"
;New flags added by ALS. May be represented by 3 bits if space gets tight.
ALIN←←2000 ;ALINE FLAG
INDEN←←4000 ;INDENT FLAG
CEN←←10000 ;CENTER FLAG
JOINF←←20000 ;JOIN FLAG
ZATT←←40000 ;To save ATTACH on a Z-EPSIL command.
; 100000
; 200000
NGPUSE←←400000 ;Network Graphic User